Votre recherche :

keys firmware

bbcoeur95
Re: Débricker un wii
Donnes nous quelques infos :
Numéro de série de la Wii : LEH11177292 - 6
Firmware de la Wii avant le brick : 4.2
Jeu qui a brické la Wii : super mario bros
Bootmii installé? (Oui? non? En boot2? en IOS?) - homebrow channel et le reste je ne sais plus
Sauvegarde de NAND (fichier nand.bin et keys.bin) faite? : m'en rappel pas
Priiloader installé? Si oui, fonctionne-t-il encore? : m'en rappel pas non plus
Voir le sujet
Avatar de l’utilisateur
William F.
Re: Débricker un wii
Salut,
Donnes nous quelques infos :
Numéro de série de la Wii :
Firmware de la Wii avant le brick :
Jeu qui a brické la Wii :
Bootmii installé? (Oui? non? En boot2? en IOS?)
Sauvegarde de NAND (fichier nand.bin et keys.bin) faite?
Priiloader installé? Si oui, fonctionne-t-il encore?


Regarde mon tutoriel en signature, il explique comment débricker la Wii avec la méthode du SaveMiiFrii, mais avant de te lancer dedans, réponds à mes questions.
Voir le sujet
gabitbol_1
Re: Reflection : le premier homebrew fonctionnel sur les firmwar
copié collé de la news de magixien qui interview matieuLH !
ca devrai en calmer plus d'un là..

Passons donc au vif du sujet : la découverte des Masterkeys de la PSP (kirk keys) par Mathieulh. Sans détailler autant que notre ami développeur, il faut savoir que c'est le hack récent de la PlayStation 3 (découverte et mise en ligne de la Masterkeys de la console, merci de vous rendre sur PS3GEN pour plus d'informations) qui a permis la découverte de ces clés.

Contrairement à la Masterkeys de la PlayStation 3, elles ne permettent que de signer du contenu User (homebrew, émulateur, etc.) afin que celui-ci se lance en firmware officiel sans avoir besoin de passer par le Half Byte Loader, un HEn ou un custom firmware. Ces clés ne sont pas suffisantes pour lancer du contenu Kernel (ISO Loader, Downgrader, etc.). Cependant, il est possible d'associer les clés à une faille kernel (comme celle utilisée par Total_Noob pour le 6.20 TN-B) afin de prendre un contrôle total de la PSP. Mathieulh tient ensuite à préciser que la découverte des clés ne signifie pas qu'il revient sur la scène PSP qu'il a quittée, il y a quelques années déjà.

reste a voir ce que associer ces clés avec une faille kernel peuvent faire.
Voir le sujet
sutarujin
Re: MAJ - Custom Firmware KaKaRoTo : le premier Custom Firmware
sasukps3 Wrote:toutes les clefs ont été trouvé il me semble mathieulh vient de les communiquer !


Pas la private key ecdsa (pour faire l'equivalent du make_npdrm du sdk de sony). Si toutes les cles avaient ete trouves ca ferait bien longtemps qu'on pourrait signer les pkg des applications.


[23:22] <drk> sven: so we don't have the key for pkgs ?
[23:22] <drk> how sad ;p
[23:22] * Matt_P removes ban on *!*ryan@*.hsd1.mn.comcast.net
[23:23] <sven> we have the encryption key
[23:23] <TomHash> ok
[23:23] <sven> we don't have the ecdsa private key
[23:23] <SordOfWar> nice, launching gameos from asbestos
[23:23] <ector-> drk, there are separate non-fail keys for the "npdrm" stuff apparently (?)
Voir le sujet
Avatar de l’utilisateur
azertyxpp
Re: MAJ - Custom Firmware KaKaRoTo : le premier Custom Firmware
kikims93s Wrote:
tba77 Wrote:Sony va en pleurer je ne suis pas si sûr que ça, ça pourrait booster la vente des consoles, les éditeurs tiers et éditeurs de jeux avec les backup vont plus pleurer que Sony je pense. Il suffit de prendre l'exemple de la PS2 qui a été hackée dès sa sortie, le hack n'a jamais ralenti la vente des consoles PS2 je dirais même au contraire.



Ta raison !! sa ete la reine des consoles pendant 5 ans, je pense ;D

Sinon metter nous au courant quand quelque' un trouvera le moyen de pouvoir tt signer sois même ;)

Y a moyen:
azertyxpp Wrote:
legendkil Wrote:azertyxpp j'ai installé le truc et j'ai toujours tout ça moi ^^ par contre il est dis quelques pages avant qu'on peux faire marcher les homebrews non signés en les "signant" avec les logiciels comme ps3tool, serai t il possible de nous sortir un tuto sur ça ?

A ba comme le dit mon collègue du dessus cela a été corrigé avec la version 1.2 de se CFW mais vous été bien sur que maintenant toutes ces options sont bien présente ? Non PS3Tool c'est pour signer les .pkg des mises à jours (PUP) qui sont différents des .pkg des homebrew, pour signer un .pkg il faut des bases en programmation et cela n'est pour le moment pas possible au commun des mortels look le binse legendkil ^^":
Code: Select All Code
// SCEkrit.c (v1.0): Compute Sony's Private Keys
// Based on Sven's sceverify.c
// -------------------------------------------------------------
// Compile by copying to fail0verflow's ps3tools and add
// SCEkrit.c to TOOLS in the Makefile.
// Depends on libgmp; add -lgmp to LDFLAGS
// - Aaron Lindsay / @AerialX
// And thanks gbcft!

// Copyright 2010       Sven Peter <svenpeter@gmail.com>
// Licensed under the terms of the GNU GPL, version 2
// http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt

#include "tools.h"
#include "types.h"

#include <stdio.h>
#include <string.h>
#include <assert.h>
#include <stdlib.h>
#include <gmp.h>

static int keyid = -1;

static u8 *ptr1 = NULL;
static u8 *ptr2 = NULL;

static u16 type;
typedef struct {
   u16 flags;
   u32 meta_offset;
   u64 info_offset;
   u32 app_type;
   u64 filesize;
   u64 header_len;
} fileinfo;

static fileinfo info1;
static fileinfo info2;

static struct keylist *klist = NULL;

static struct keylist *self_load_keys(fileinfo* info)
{
   enum sce_key id;

   switch (info->app_type) {
      case 1:
         id = KEY_LV0;
         break;
       case 2:
         id = KEY_LV1;
         break;
      case 3:
         id = KEY_LV2;
         break;
      case 4:   
         id = KEY_APP;
         break;
      case 5:
         id = KEY_ISO;
         break;
      case 6:
         id = KEY_LDR;
         break;
      default:
         fail("invalid type: %08x", info->app_type);   
   }

   return keys_get(id);
}

static void read_self_header(u8* ptr, fileinfo* info)
{
   info->flags    =    be16(ptr + 0x08);
   info->meta_offset = be32(ptr + 0x0c);
   info->header_len =  be64(ptr + 0x10);
   info->filesize =    be64(ptr + 0x18);
   info->info_offset = be64(ptr + 0x28);

   info->app_type =    be32(ptr + info->info_offset + 0x0c);

   klist = self_load_keys(info);
}

static void read_pkg_header(u8* ptr, fileinfo* info)
{
   info->flags    =    be16(ptr + 0x08);
   info->meta_offset = be32(ptr + 0x0c);
   info->header_len =  be64(ptr + 0x10);
   info->filesize =    be64(ptr + 0x18);

   klist = keys_get(KEY_PKG);
}

static void decrypt(u8* ptr)
{
   if (keyid < 0)
      keyid = sce_decrypt_header(ptr, klist);
   else if (keyid != sce_decrypt_header(ptr, klist))
      fail("Both files must have the same key id");

   if (keyid < 0)
      fail("sce_decrypt_header failed");

   if (sce_decrypt_data(ptr) < 0)
      fail("sce_decrypt_data failed");

   if (klist->keys[keyid].pub_avail < 0)
      fail("no public key available");

   if (ecdsa_set_curve(klist->keys[keyid].ctype) < 0)
      fail("ecdsa_set_curve failed");

   ecdsa_set_pub(klist->keys[keyid].pub);
}

static void verify_signature(u8* ptr, fileinfo* info, u8* hash, u8** s, u8** r)
{
   u64 sig_len;

   sig_len = be64(ptr + info->meta_offset + 0x60);
   *r = ptr + sig_len;
   *s = *r + 21;

   sha1(ptr, sig_len, hash);

   printf("Signature\n");
   if (ecdsa_verify(hash, *r, *s))
      printf("  Status: OK\n");
   else
      printf("  Status: FAIL\n");
}

static void load_num(mpz_t n, u8* un)
{
   char buffer[0x100];
   char* ptr = buffer;
   int i;
   for (i = 0; i < 21; i++) {
      sprintf(ptr, "%02x", un[i]);
      ptr += 2;
   }
   mpz_set_str(n, buffer, 16);
}

static char* calculate_private_key(u8* us1, u8* us2, u8* uz1, u8* uz2, u8* un, u8* ur)
{
   mpz_t s1, s2, z1, z2, n, r, k, dA;
   mpz_inits(s1, s2, z1, z2, n, r, k, dA, NULL);
   load_num(s1, us1); load_num(s2, us2); load_num(z1, uz1); load_num(z2, uz2); load_num(n, un); load_num(r, ur);

   mpz_sub(z2, z1, z2);
   mpz_sub(s2, s1, s2);
   mpz_invert(s2, s2, n);
   mpz_mul(k, z2, s2);
   mpz_mod(k, k, n);

   mpz_mul(s2, s1, k);
   mpz_sub(s2, s2, z1);
   mpz_invert(r, r, n);
   mpz_mul(dA, s2, r);
   mpz_mod(dA, dA, n);

//   printf("k: %s\n", mpz_get_str(NULL, 16, k));
   return mpz_get_str(NULL, 16, dA);
}

int main(int argc, char *argv[])
{
   if (argc != 3)
      fail("usage: scesekrit filename1 filename2");

   ptr1 = mmap_file(argv[1]);
   ptr2 = mmap_file(argv[2]);

   type = be16(ptr1 + 0x0a);
   if (type != be16(ptr2 + 0x0a))
      fail("Files must be the same type");
   
   if (type == 1) {
      read_self_header(ptr1, &info1);
   } else if(type == 3) {
      read_pkg_header(ptr1, &info1);
   } else
      fail("Unknown type: %d", type);

   if ((info1.flags) & 0x8000)
      fail("devkit file; nothing to verify");

   if (klist == NULL)
      fail("no key found");

   decrypt(ptr1);
   
   if (type == 1) {
      read_self_header(ptr2, &info2);
   } else if(type == 3) {
      read_pkg_header(ptr2, &info2);
   } else
      fail("Unknown type: %d", type);

   if ((info2.flags) & 0x8000)
      fail("devkit file; nothing to verify");

   if (klist == NULL)
      fail("no key found");

   decrypt(ptr2);

   u8* s1;
   u8* s2;
   u8 z1[21];
   u8 z2[21];
   u8* r1;
   u8* r2;
   u8 ec[21];
   u8 n[21];
   z1[0] = 0;
   z2[0] = 0;
   
   ecdsa_get_params(klist->keys[keyid].ctype, ec, ec, ec, n, ec, ec);

   printf("%s ", argv[1]);
   verify_signature(ptr1, &info1, z1 + 1, &s1, &r1);
   printf("%s ", argv[2]);
   verify_signature(ptr2, &info2, z2 + 1, &s2, &r2);

   if (memcmp(r1, r2, 21))
      fail("Both files must share the same r signature value.");

   const char* dA = calculate_private_key(s1, s2, z1, z2, n, r1);

   int len = strlen(dA);
   int i;
   printf("Private Key: ");
   for (i = len / 2; i < 21; i++)
      printf("00");
   printf("%s\n", dA);

   return 0;
}

Donc pour l'instant il n'y a même pas de logiciel pour ceci c'est juste cette feuille de route (dira t'on) pour programmer la signature via lunix.

Après il y aurait apparemment un logiciel pour signer dans le kit de fail0verflow mais pas sur du tout car les outils de fail0verflow sont uniquement accès pour modifier des PUP et notamment compiler de PKG pour les PUP qui sont différents des PKG que nous avons l'habitude d'utiliser (MAJ des jeux, homebrew, jeux PSN...).
Voir le sujet
Avatar de l’utilisateur
azertyxpp
Re: MAJ - Custom Firmware KakaRoTo : le premier Custom Firmware
letiati Wrote:Pour le moment sa ne sert a rien de l'installer? vuque sa ne lance pas d'homebrew
donc je peu metre ma ps3 en 3.55 maintenant??

Sisi avec un manager de backup signé comme dit dans mon précédent post reli le mieux ^^", maintenant il faut le trouver sur net, si c'est pas encore dispo cela ne serait tarder car cela irai de paire avec se CFW. Mais tu perd beaucoup de chose aussi (li mon précédent post) à toi de voir si cela en vaut vraiment la chandelle pour toi.
legendkil Wrote:azertyxpp j'ai installé le truc et j'ai toujours tout ça moi ^^ par contre il est dis quelques pages avant qu'on peux faire marcher les homebrews non signés en les "signant" avec les logiciels comme ps3tool, serai t il possible de nous sortir un tuto sur ça ?

A ba comme le dit mon collègue du dessus cela a été corrigé avec la version 1.2 de se CFW mais vous été bien sur que maintenant toutes ces options sont bien présente ? Non PS3Tool c'est pour signer les .pkg des mises à jours (PUP) qui sont différents des .pkg des homebrew, pour signer un .pkg il faut des bases en programmation et cela n'est pour le moment pas possible au commun des mortels look le binse legendkil ^^":
Code: Select All Code
// SCEkrit.c (v1.0): Compute Sony's Private Keys
// Based on Sven's sceverify.c
// -------------------------------------------------------------
// Compile by copying to fail0verflow's ps3tools and add
// SCEkrit.c to TOOLS in the Makefile.
// Depends on libgmp; add -lgmp to LDFLAGS
// - Aaron Lindsay / @AerialX
// And thanks gbcft!

// Copyright 2010       Sven Peter <svenpeter@gmail.com>
// Licensed under the terms of the GNU GPL, version 2
// http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt

#include "tools.h"
#include "types.h"

#include <stdio.h>
#include <string.h>
#include <assert.h>
#include <stdlib.h>
#include <gmp.h>

static int keyid = -1;

static u8 *ptr1 = NULL;
static u8 *ptr2 = NULL;

static u16 type;
typedef struct {
   u16 flags;
   u32 meta_offset;
   u64 info_offset;
   u32 app_type;
   u64 filesize;
   u64 header_len;
} fileinfo;

static fileinfo info1;
static fileinfo info2;

static struct keylist *klist = NULL;

static struct keylist *self_load_keys(fileinfo* info)
{
   enum sce_key id;

   switch (info->app_type) {
      case 1:
         id = KEY_LV0;
         break;
       case 2:
         id = KEY_LV1;
         break;
      case 3:
         id = KEY_LV2;
         break;
      case 4:   
         id = KEY_APP;
         break;
      case 5:
         id = KEY_ISO;
         break;
      case 6:
         id = KEY_LDR;
         break;
      default:
         fail("invalid type: %08x", info->app_type);   
   }

   return keys_get(id);
}

static void read_self_header(u8* ptr, fileinfo* info)
{
   info->flags    =    be16(ptr + 0x08);
   info->meta_offset = be32(ptr + 0x0c);
   info->header_len =  be64(ptr + 0x10);
   info->filesize =    be64(ptr + 0x18);
   info->info_offset = be64(ptr + 0x28);

   info->app_type =    be32(ptr + info->info_offset + 0x0c);

   klist = self_load_keys(info);
}

static void read_pkg_header(u8* ptr, fileinfo* info)
{
   info->flags    =    be16(ptr + 0x08);
   info->meta_offset = be32(ptr + 0x0c);
   info->header_len =  be64(ptr + 0x10);
   info->filesize =    be64(ptr + 0x18);

   klist = keys_get(KEY_PKG);
}

static void decrypt(u8* ptr)
{
   if (keyid < 0)
      keyid = sce_decrypt_header(ptr, klist);
   else if (keyid != sce_decrypt_header(ptr, klist))
      fail("Both files must have the same key id");

   if (keyid < 0)
      fail("sce_decrypt_header failed");

   if (sce_decrypt_data(ptr) < 0)
      fail("sce_decrypt_data failed");

   if (klist->keys[keyid].pub_avail < 0)
      fail("no public key available");

   if (ecdsa_set_curve(klist->keys[keyid].ctype) < 0)
      fail("ecdsa_set_curve failed");

   ecdsa_set_pub(klist->keys[keyid].pub);
}

static void verify_signature(u8* ptr, fileinfo* info, u8* hash, u8** s, u8** r)
{
   u64 sig_len;

   sig_len = be64(ptr + info->meta_offset + 0x60);
   *r = ptr + sig_len;
   *s = *r + 21;

   sha1(ptr, sig_len, hash);

   printf("Signature\n");
   if (ecdsa_verify(hash, *r, *s))
      printf("  Status: OK\n");
   else
      printf("  Status: FAIL\n");
}

static void load_num(mpz_t n, u8* un)
{
   char buffer[0x100];
   char* ptr = buffer;
   int i;
   for (i = 0; i < 21; i++) {
      sprintf(ptr, "%02x", un[i]);
      ptr += 2;
   }
   mpz_set_str(n, buffer, 16);
}

static char* calculate_private_key(u8* us1, u8* us2, u8* uz1, u8* uz2, u8* un, u8* ur)
{
   mpz_t s1, s2, z1, z2, n, r, k, dA;
   mpz_inits(s1, s2, z1, z2, n, r, k, dA, NULL);
   load_num(s1, us1); load_num(s2, us2); load_num(z1, uz1); load_num(z2, uz2); load_num(n, un); load_num(r, ur);

   mpz_sub(z2, z1, z2);
   mpz_sub(s2, s1, s2);
   mpz_invert(s2, s2, n);
   mpz_mul(k, z2, s2);
   mpz_mod(k, k, n);

   mpz_mul(s2, s1, k);
   mpz_sub(s2, s2, z1);
   mpz_invert(r, r, n);
   mpz_mul(dA, s2, r);
   mpz_mod(dA, dA, n);

//   printf("k: %s\n", mpz_get_str(NULL, 16, k));
   return mpz_get_str(NULL, 16, dA);
}

int main(int argc, char *argv[])
{
   if (argc != 3)
      fail("usage: scesekrit filename1 filename2");

   ptr1 = mmap_file(argv[1]);
   ptr2 = mmap_file(argv[2]);

   type = be16(ptr1 + 0x0a);
   if (type != be16(ptr2 + 0x0a))
      fail("Files must be the same type");
   
   if (type == 1) {
      read_self_header(ptr1, &info1);
   } else if(type == 3) {
      read_pkg_header(ptr1, &info1);
   } else
      fail("Unknown type: %d", type);

   if ((info1.flags) & 0x8000)
      fail("devkit file; nothing to verify");

   if (klist == NULL)
      fail("no key found");

   decrypt(ptr1);
   
   if (type == 1) {
      read_self_header(ptr2, &info2);
   } else if(type == 3) {
      read_pkg_header(ptr2, &info2);
   } else
      fail("Unknown type: %d", type);

   if ((info2.flags) & 0x8000)
      fail("devkit file; nothing to verify");

   if (klist == NULL)
      fail("no key found");

   decrypt(ptr2);

   u8* s1;
   u8* s2;
   u8 z1[21];
   u8 z2[21];
   u8* r1;
   u8* r2;
   u8 ec[21];
   u8 n[21];
   z1[0] = 0;
   z2[0] = 0;
   
   ecdsa_get_params(klist->keys[keyid].ctype, ec, ec, ec, n, ec, ec);

   printf("%s ", argv[1]);
   verify_signature(ptr1, &info1, z1 + 1, &s1, &r1);
   printf("%s ", argv[2]);
   verify_signature(ptr2, &info2, z2 + 1, &s2, &r2);

   if (memcmp(r1, r2, 21))
      fail("Both files must share the same r signature value.");

   const char* dA = calculate_private_key(s1, s2, z1, z2, n, r1);

   int len = strlen(dA);
   int i;
   printf("Private Key: ");
   for (i = len / 2; i < 21; i++)
      printf("00");
   printf("%s\n", dA);

   return 0;
}

Donc pour l'instant il n'y a même pas de logiciel pour ceci c'est juste cette feuille de route (dira t'on) pour programmer la signature via lunix.

A oui effectivement remi06 j'ai pas pensé à ces foutus syscall, donc oui il faudrai aussi une modif sur le firmware au niveau des syscall, une version 1.3 peut être.
;)
Voir le sujet
jackseg
Re: Custom Firmware KakaRoTo 3.55 : le premier firmware modifié
Shadow1230 Wrote:
jackseg Wrote:
Et moi je ne peux m'empecher de rire devant une telle phrase.
La PS3 est tout sauf un gruyère. Quand tu as les root keys, tu peux tout faire tout simplement.


Toujours un guignol pour reprendre la phrase précédente et espérer casser quelqu'un pour acquérir un semblant de réussite dans son petit quotidien jamais ennuyant.
La vie, c'est moche, hein... ;)

Tu as l'air d'avoir de l'expérience sur les choses moches de la vie. Ha, le miroir...

Je ne vois pas en quoi ma réponse est "cassante". Il dit des bêtises, je rectifie. Si tu préfères dire que la PS3 est un gruyère, libre à toi, comme libre à moi de te répondre car on est sur un forum. Tu sais le truc qui est public...

Il y a trop de branleurs qui ne savent pas de quoi ils parlent sur ce forum :-\
Voir le sujet
nush
Re: Custom Firmware KakaRoTo 3.55 : le premier firmware modifié
Shadow1230 Wrote:
jackseg Wrote:
Et moi je ne peux m'empecher de rire devant une telle phrase.
La PS3 est tout sauf un gruyère. Quand tu as les root keys, tu peux tout faire tout simplement.


Toujours un guignol pour reprendre la phrase précédente et espérer casser quelqu'un pour acquérir un semblant de réussite dans son petit quotidien jamais ennuyant.
La vie, c'est moche, hein... ;)

(Merci de ne pas répondre, c'est mon dernier message te concernant. Si tu souhaites te lancer dans un "qui qu'à la plus grosse", envoi en MP, mais pas ici, merci.)

Non, si tu possèdes le jeu original, ce n'est pas illégal. C'est ce qu'on appelle la copie privée, et tu paies même une taxe pour ça.


Une taxe ? Dans quelque chose de "privé" ? Dur.



Me font toujours rire les gens qui lancent une pique et demandent à l'autre de ne pas répondre...


Bref oui tu paie une taxe quand tu achète des CD/DVD vierges.
Voir le sujet
Kaexoy
Re: Custom Firmware KakaRoTo 3.55 : le premier firmware modifié
jackseg Wrote:
Et moi je ne peux m'empecher de rire devant une telle phrase.
La PS3 est tout sauf un gruyère. Quand tu as les root keys, tu peux tout faire tout simplement.


Toujours un guignol pour reprendre la phrase précédente et espérer casser quelqu'un pour acquérir un semblant de réussite dans son petit quotidien jamais ennuyant.
La vie, c'est moche, hein... ;)

(Merci de ne pas répondre, c'est mon dernier message te concernant. Si tu souhaites te lancer dans un "qui qu'à la plus grosse", envoi en MP, mais pas ici, merci.)

Non, si tu possèdes le jeu original, ce n'est pas illégal. C'est ce qu'on appelle la copie privée, et tu paies même une taxe pour ça.


Une taxe ? Dans quelque chose de "privé" ? Dur.
Voir le sujet
jackseg
Re: Custom Firmware KakaRoTo 3.55 : le premier firmware modifié
Shadow1230 Wrote:J'ai pas pu m'empêcher de rire devant mon écran.
Quand on pense qu'il y a un an, on avait encore une forteresse blindé... et qu'au final, c'est un vrai gruyère...

Et moi je ne peux m'empecher de rire devant une telle phrase.
La PS3 est tout sauf un gruyère. Quand tu as les root keys, tu peux tout faire tout simplement.
Voir le sujet